package com.jch.case2.dao;


import com.jch.case2.pojo.po.User;
import com.jch.case2.pojo.vo.AddUser;
import com.jch.case2.pojo.vo.UpdateUser;
import org.apache.ibatis.annotations.*;

import java.util.List;

public interface UserMapper {
    //分页查询用户和角色信息
    List<User> findAll(@Param("startIndex") Integer startIndex, @Param("pageSize") Integer pageSize);
    //查询用户表的总记录数
    @Select("select count(*) from t_user")
    Long findCount();
    //更新用户表t_user的数据
    @Update("update t_user set username=#{username},email=#{email},password=#{password} where id=#{id}")
    void update(UpdateUser updateUser);
    //根据用户id到中间表t_user_role中删除用户数据
    @Delete("delete from t_user_role where user_id=#{uid}")
    void deleteFromUserAndRoleTableByUID(@Param("uid") Integer uid);
    //向中间表t_user_role中插入数据的方法
    //TODO:添加数据，第二个参数存放的是多个角色id,需要使用动态sql遍历集合
    void addUIDAndRIDToUserAndRoleTable(@Param("uid") Integer id, @Param("roleIds") List<String> roleIds);
   @Delete("delete from t_user where id=#{id}")
    void  deleteuserbyid(@Param("id") Integer id);
    @Insert("insert into t_user(username, password, email) values (#{username},#{password},#{email})")
    void adduser(AddUser addUser);
    @Select(" select  id  from t_user where username=#{username}")
    Integer selectuserbyname(String username);
}
